Adjustable data transmissions by navigation devices

ABSTRACT

In some examples, a device receives a dynamically selectable threshold, and responsive to the threshold being set to a first threshold value, causes transmission, to a computer over a communication interface, location data relating to a geographic location of the device at a first frequency of transmission, regardless of whether the device is stationary or in motion. Responsive to the threshold being set to a second threshold value different from the first threshold value, the device causes transmission, to the computer over the communication interface, the location data relating to the geographic location of the device in response to determining that the device has moved by a distance that exceeds the second threshold value.

CROSS REFERENCE TO RELATED APPLICATIONS

This is a continuation of U.S. application Ser. No. 13/816,199, filedFeb. 8, 2013, which is a national stage application under 35 U.S.C. §371of PCT/US2010/046355, filed Aug. 23, 2010, which are both herebyincorporated by reference in their entirety.

BACKGROUND

A navigation device is a location determining device that can providegeographic location information of the device. An example of anavigation device is a global positioning system (GPS) navigation devicewhich can receive GPS signals for the purpose of determining thelocation of the device. A navigation device may consume power duringoperation including when calculating its location and transmitting thisinformation to other devices.

BRIEF DESCRIPTION OF THE DRAWINGS

For a detailed description of example embodiments, reference will now bemade to the accompanying drawings in which:

FIG. 1 is a block diagram of a navigation device with adjustable datatransmission in accordance with at least some illustrative embodiments;

FIGS. 2A and 2B are flow diagrams showing a navigation devicecommunicating with a host computing device in accordance with at leastsome illustrative embodiments; and

FIG. 3 is a flow chart of a method of operation of the navigation devicein accordance with at least some illustrative embodiments.

DETAILED DESCRIPTION

A navigation device can generate data related to its geographic locationand transmit this data to another device such as notebook computer orother computing device. The computing device may consume power when itreceives and processes the data. The frequency at which the data istransmitted to the computing device (how often) may have an impact onthe power consumption of the computing device. To help reduce such powerconsumption, in one embodiment, the navigation device can adjust thefrequency of transmission of the location data. This can be based on aselectable threshold value representing an amount of change in thelocation of the device. In this manner, the navigation device cantransmit the data when the location of the device changes in an amountthat exceeds the threshold value. Therefore, the navigation device canreduce the frequency of transmission of the location data to thecomputing device which may help decrease the computing device resources(controller and memory) necessary for processing the data thereby reducethe power consumption of the device.

Various embodiments and the advantages thereof are best understood byreferring to FIGS. 1-3 like numerals being used for like andcorresponding parts of the various drawings.

FIG. 1 shows a system 100 comprising a navigation device 102 capable oftransmitting geographic location data over a communication link 136 to acomputing device 104 in accordance with an embodiment. The navigationdevice 102 can include a location determining module 110 configured togenerate data relating to a geographic location of the device 102 and toadjust frequency of transmission of the data to the computing device104. The adjustment can be based on a selectable threshold valuerepresenting an amount of change in the geographic location of thenavigation device 102. For example, the module 110 can transmitgeographic location data to the computing device 104 based on whetherthe location of the device has changed by a threshold value such as, forexample, 100 feet. By having the device 102 reduce the frequency atwhich data is transmitted to the computing device 104, the computingdevice may be able to decrease the amount of resources necessary toprocess the data and therefore help consume less power. In other words,the frequency of transmission of data can be adjusted to help decreasethe power consumption of the computing device. The navigation device 102can provide a user the ability to adjust the frequency of transmissionto allow a desired tradeoff between a level of location data accuracyand power consumption.

The navigation device 102 can include a navigation device controller 106configured to control the operation of the device. The controller 106can be a processor or any hardware logic configured to execute computerexecutable instructions stored in navigation memory 108 and store andretrieve navigation data 112 in memory during the operation of thecontroller. The navigation data 112 can include geographic location dataof the device generated by the navigation device 102 during itsoperation. The navigation data 112 can also include one or morethreshold values representing an amount of change in the geographiclocation for adjusting the frequency of transmission of data to thecomputing device. For example, a user can specify a threshold value of apredefined distance, such as 100 feet, representing the amount ofdistance or change in the location of the device before the navigationdevice 102 transmits the location data to the computing device. Athreshold value can be set by a user through any input means, such askeyboard, on the computing device 104 or navigation device 102, or acombination thereof.

In one embodiment, the location determining module 110 can generate andtransmit geographic location data in accordance with the United Statesbased national marine electronics association (NMEA) standard. The NMEAstandard is a combined electrical and data specification for a marinedata network for communication between marine electronic devicesincluding GPS receivers or other navigation devices. The module 110 cantransmit the location data to the computing device 104 in a continuousstream at a particular frequency of transmission such as 1 Hertz. Such acontinuous stream of data may increase the power consumption of thecomputing device because it has to allocate resources, such as thecontroller and memory, to process the received location data even whenthere is no change in the location of the device.

In one embodiment, the location determining module 110 can adjust thefrequency at which location data is transmitted over the communicationlink 136 to the computing device 104 which may help reduce the powerconsumption of the computing device. For example, the navigation system102 (and/or computing device 104) can provide a user with the ability toinput a plurality of threshold values. For instance, a user can specifythat the navigation device 102 is to transmit (or sometimes referred toas stream) location data to the computing device at the standard rate of1 Hz. That is, the threshold value is zero meaning that the data istransmitted at the standard rate or frequency of transmission. This mayprovide for the highest accuracy location data but at the cost ofincreased power consumption because the computing device has to processdata at the 1 Hz rate. That is, location data may be transmitted evenwhen there is no change in the location of the navigation device. Inanother example, a user can specify that location data is to betransmitted only when a specified amount of change in the location ofthe device occurs. That is, when the location of the navigation device102 is static (not changing location), the device can store (or buffer)the current location data in memory and the device does not transmit anydata to the computing device. If the location determining module 110determines that a change in its location has occurred, it can thentransmit the location data to the computing device over thecommunication link 136. This may provide for adequate accuracy oflocation data and improved power consumption. In yet another, example, auser can specify a threshold value representing an amount of change inthe geographic location of the device such that data is transmitted onlywhen the change in the location of the device exceeds the thresholdvalue. This may provide for the least accuracy of location data but afurther reduction in power consumption.

The location determining module 110 can be a software module comprisingcomputer executable instructions in the memory 108. However, it shouldbe understood that the module 110 can be a hardware module comprisinglogic configured to perform similar functions as a software implementedmodule. In another embodiment, the module 110 can be a combination ofhardware and software components. The navigation memory 108 can comprisea computer-readable medium such as volatile memory (e.g., random accessmemory, etc.), non-volatile storage (e.g., read only memory, Flashmemory, CD ROM, etc.), and combinations thereof. The memory 108 cancomprise additional software or firmware that can be executed by thecontroller 106. One or more of the actions described herein areperformed by the controller 106 during execution of the software orfirmware.

The navigation device 102 can include an antenna 114 for receipt ofnavigation signals from an external navigation data providing system.The device 102 can include a data receiver 116 to process the receivednavigation signals for use by the location determining module 110 todetermine the geographic location of the device. The navigation signalscan be sent from a global positioning system (GPS) system, aterrestrial-based system, a satellite-based system or any other systemthat can provide signals to determine a location of a device. In a GPSembodiment, each satellite may continually transmit messages that mayinclude the time the message was transmitted, precise orbitalinformation (the ephemeris), the general system health and rough orbitsof all GPS satellites (the almanac) and other information as necessary.The navigation device 102 may use the messages it receives to determinethe transit time of each message and compute the distances to eachsatellite. The location determining module 110 can use these distancesalong with the satellites' locations with the possible aid oftrilateration, depending on which algorithm is used, to compute thelocation of the navigation device 102.

The navigation device 102 can be configured to communicate with thecomputing device 104 over the communication link 136. The navigationdevice 102 can include a navigation communication interface 118 and thecomputing device 104 can include a communication interface 124 to allowfor the exchange of data between each device. The communication means(communication interfaces 118, 124 and communication link 136) can beany means of communication such as wired means of communication (using acable), wireless means of communication (such as Bluetooth) or acombination thereof. For example, the communication means can beimplemented using universal serial bus (USB) with a serialcommunications protocol. The computing device 104 can deliver power frompower source 134 to the navigation device 102 via the USB interface.However, it should be understood that the navigation device 102 can bepowered from a power source other than from power from the computingdevice 104. For example, the navigation device 102 can be powered froman external power source such as an alternating current (AC) poweradapter to convert AC power to direct current (DC) power, a battery oranother power source.

The computing device 104 can include a computing device controller 126to control the operation of the device. The controller 126 can be aprocessor or any hardware logic configured to execute computerexecutable instructions in computing device memory 128 and store andretrieve computing device data 132 in the memory during the operation ofthe controller. The data 132 can include geographic location data of thedevice received from the navigation device 102 during its operation. Thecomputing device 104 can include a computing device module 130configured to control the operation of the device. The module 130 can bea software module comprising computer executable instructions in thememory 128. However, it should be understood that the module 130 can bea hardware module comprising logic configured to perform similarfunctions as a software implemented module. In another embodiment, themodule 130 can be a combination of hardware and software components. Thememory 128 can comprise a computer-readable medium such as volatilememory (e.g., random access memory, etc.), non-volatile storage (e.g.,read only memory, Flash memory, CD ROM, etc.), and combinations thereof.The memory 128 can comprise additional software or firmware that can beexecuted by the controller 126. One or more of the actions describedherein are performed by the controller 126 during execution of thesoftware or firmware.

The computing device 104 can consume power when receiving location datafrom the navigation device 102 over the communication link 136. Thehigher the frequency at which data is transmitted from the navigationdevice 102, the higher the rate at which the computing device 104 has toallocate resources necessary to process the data which may cause anincrease in power consumption. On the other hand, the lower thefrequency at which data is transmitted from the navigation device 102,the lower the amount of computing device resources necessary to processthe data which may cause a decrease in power consumption of thecomputing device. Accordingly, if the power source is, for example, abattery, then the amount of time before the battery needs to berecharged may depend on the frequency of the data transmitted from thenavigation device. The higher the frequency at which data istransmitted, the higher the power consumption which may cause thebattery to be recharged at a higher rate. As explained above, adjustingthe frequency at which data is transmitted presents a tradeoff betweenaccuracy of location data and power consumption.

The power source 134 can be used to power the computing device 104. Thepower source can be any means of providing power such as a rechargeablebattery, a DC power source such as from an AC adapter to convert an ACsource to the DC source, solar power, wind power, fuel cell or any othermeans of providing power. The power source 134 can be configured toprovide power to the navigation device 102 through the communicationlink 136.

The computing device 104 can include a display device 120 configured todisplay data or information related to the operation of the device 104or for any other purpose. The display device 120 can be any means ofcommunicating information or data to the user. For example, the displaydevice 120 can be a liquid crystal display (LCD), light emitting device(LED) display, sound output, mechanical/vibration output or acombination thereof. The computing device 104 can include an inputdevice 122 configured to allow input of information or data into thedevice 104 for use in the operation of the device or for any purpose.The input device 122 can be any means of entering information and datato the device. For example, the input device 122 can include a keyboard,mechanical switches, a mouse, a joystick a touch pad, touch screen,voice recognition or a combination thereof. Although not shown, thecomputing device 104 can include a network communication means toprovide wired or wireless access to a communication network.

The navigation device 102 and the computing device 104 can take anyshape or form. For instance, the components of the devices 102, 104 canbe integrated into a single device, printed circuit board, housing orthe like. The components of the devices 102, 104 can also be detachableor separate from each other and can use any means of communicationbetween each component. In one embodiment, the devices 102, 104 can beintegrated into a single housing in the form of a notebook computer witha base component having an input device and a display component having adisplay device. In other embodiments, the devices 102, 104 can takeother forms and shapes such as a netbook, a GPS receiver device, tabletcomputer, client computer, server computer, desktop computer, rack mountcomputer, smartphone, cellphone, e-reader or any other electronic devicecapable of performing functions in an electronic form.

FIG. 2A and 2B are flow diagrams showing a navigation devicecommunicating with a host computing device in accordance with anembodiment.

FIG. 2A shows a GPS device 202 configured to communicate with a hostcomputing device 210. The GPS device 202 can be a navigation devicehaving a GPS receiver 204 configured to receive GPS signals from anexternal GPS source and generate geographic location data based on theGPS signals. The GPS device 202 can generate and transmit datarepresenting a geographic location of the device as a NMEA data stream206 in accordance with the NMEA transmission standard across USBinterface 208 and to the host computing device 210. The host computingdevice 210 includes a host USB controller 214 configured to control theoperation of the device and of host USB interface 212 to receive theNMEA data stream 206 from the GPS device 202. The host computing device210 includes a GPS device driver 216 (sometimes referred to as softwaredriver) which can be a computer program configured to allow applicationprogram 218 to interact with hardware level functions of the device 210such as, for example, the host USB interface 212 and the host USBcontroller 214. The application 218 can be a computer program configuredto use the data stream 206 provided by the GPS device driver 216. Forexample, the application 218 can include GPS based functions such asmapping, driving or a combination thereof. FIG. 2A shows the GPS device202 in a mode of operation in which it is transmitting to the hostcomputing device 210 a constant data stream 206 which is being used bythe application 218. However, it may be desirable for the application218 to receive data stream 206 even when the GPS device 202 is in aphysical static state (i.e., not moving) and not generating a datastream, as described in further detail below.

FIG. 2B shows an embodiment in which the application 218 can receive thedata stream 206 even when the GPS device 202 is not transmitting thedata stream across the interface 208. For example, when GPS device 202is in a physical static state (i.e., not moving) or within a specifiedthreshold value as described above, the GPS device may generate a datastream 206 but it may not transmit the stream across the interface 208.However, the application 218 may require data stream 206 for properoperation even when it is not being transmitted by the GPS device 202.For example, the application 218 may require that the data stream 206 beconstant (NMEA data stream at 1 Hz) as an indicator that the GPS device202 is still functioning and providing valid data. In one embodiment,the device driver 216 can be configured to provide a constant datastream 206 to continue to flow from the device driver to the application218, even when the GPS device 202 is not transmitting the data stream.This may occur when the GPS device 202 uses a threshold value to reducethe frequency at which it transmits data thereby causing thecommunication link itself to be throttled down and improve powerconsumption. In one embodiment, the device driver 216 can be configuredto provide data stream 206 based on the last location data orinformation that it received from the GPS device 202. The device driver216 can update data stream 206 when it receives a new GPS location. Inthis manner, the host computing device 210 can be power efficient byallowing a reduction in the frequency at which GPS data is transmittedacross the communication link, while allowing application 218 to benefitfrom a constant GPS data stream.

FIG. 3 shows a flow diagram of a method 300 of transmitting geographiclocation data from the navigation device 102 to the computing device 104in accordance with an embodiment. Though depicted sequentially as amatter of convenience, at least some of the actions shown can beperformed in a different order and/or performed in parallel.Additionally, some embodiments may perform only some of the actionsshown. In the embodiment illustrated in FIG. 3, the method 300 begins atblock 302 which may include a process of establishing communicationbetween the navigation device 102 and the computing device 104. Thedevices 102, 104 can be coupled to each other using a communication link136 with respective communication interfaces 118, 124. Once the powersource 134 of the computing device 104 is operational, it can be used toprovide power to the computing device 104 and to the navigation device102 over the communication link 136.

At block 304, the navigation device 102 can adjust the frequency oftransmission of data from the navigation device 102 to the computingdevice 104. For example, the location determining module 110 can providethis adjustment function based on a threshold value representing amountof change in geographic location of the navigation device 102. Forexample, a user can specify a threshold value using the input device 122to enter a particular value. The threshold value can be communicated tothe location determining module 110 which can use the value to adjustthe frequency of transmission of data from the navigation device 102 tothe computing device 104. As explained above, the module 110 can use thethreshold value to determine the frequency at which to transmit data tothe computing device 104. For example, a large threshold value may causethe navigation device 102 to decrease that frequency at which ittransmits data to the computing device. This may cause a decrease in theaccuracy of the location data but a decrease in the power consumption ofthe computing device 104. On the other hand, a small threshold value maycause the navigation device 102 to increase the frequency at which ittransmits data to the computing device 104. This may cause an increasein the accuracy of the location data but an increase in the powerconsumption of the computing device. In any event, the user is providedwith the ability to select or specify one or more threshold valuesdepending on the desired results or tradeoff between accuracy and powerconsumption.

At block 306, the navigation device 102 can generate data related to thegeographic location of the navigation device. For example, the locationdetermining module 110 can receive GPS navigation data from a GPSnavigation system. The module 110 can use this navigation data tocalculate data representing the geographic location of the device. Itcan store or buffer the generated location data in the navigation memory108 for subsequent processing such as calculating a change in thelocation of the device, as described below. The operation of thenavigation device 102 proceeds to block 308.

At block 308, the navigation device 102 can check whether a change inthe geographic location of the device exceeds the specified thresholdvalue. For example, location determining module 110 can compare acalculated current location data value with a previous calculatedlocation data value to determine whether a change in the location of thedevice occurred. The module 110 can check if the difference in thecurrent location value and the previous location value exceeds thethreshold value.

If the change in the geographic location exceeds the threshold value,then the navigation device 102 proceeds processing to block 310. Atblock 310, the device 102 transmits the location data to the computingdevice 104 over the communication link. For example, the locationdetermining module 110 can retrieve location data from the memory 108and transmit to the computing device 104 a plurality of data valuesrepresenting one or more location values. As explained above, the usercan specify threshold values to provide increased accuracy or low powerconsumption. Once the navigation device 102 has completed transmittingdata to the computing device, processing proceeds to block 306. At block306, as explained above, the device 102 continues to generate datarelated to the geographic location of the navigation device. The device102 stores the data for subsequent processing.

If the change in the geographic location does not exceed the specifiedthreshold value, then the navigation device 102 proceeds processing toblock 306. At block 306, as explained above, the device 102 continues togenerate data related to the geographic location of the navigationdevice. The device 102 stores the data for subsequent processing.

The above discussion is meant to be illustrative of the principles andvarious embodiments of the present invention. Numerous variations andmodifications will become apparent to those skilled in the art once theabove disclosure is fully appreciated. It is intended that the followingclaims be interpreted to embrace all such variations and modifications.

What is claimed is:
 1. A device comprising: a processor; anon-transitory storage medium storing instructions executable on theprocessor to: receive a dynamically selectable threshold; responsive tothe threshold being set to a first threshold value, cause transmission,to a computer over a communication interface, location data relating toa geographic location of the device at a first frequency oftransmission, regardless of whether the device is stationary or inmotion; and responsive to the threshold being set to a second thresholdvalue different from the first threshold value, cause transmission, tothe computer over the communication interface, the location datarelating to the geographic location of the device in response todetermining that the device has moved by a distance that exceeds thesecond threshold value.
 2. The device of claim 1, wherein thecommunication interface is a wired interface.
 3. The device of claim 1,wherein the communication interface is a Universal Serial Bus (USB)interface.
 4. The device of claim 1, wherein the communication interfaceis a Bluetooth interface.
 5. The device of claim 1, wherein the deviceis powered by power received over the communication interface from thecomputer.
 6. The device of claim 1, wherein the instructions areexecutable on the processor to: responsive to the threshold being set toa third threshold value larger than the second threshold value, causetransmission, to the computer over the communication interface, thelocation data relating to the geographic location of the device inresponse to determining that the device has moved by a distance thatexceeds the third threshold value.
 7. The device of claim 1, wherein theinstructions are executable on the processor to determine the locationdata based on data received from a terrestrial-based system or asatellite-based system.
 8. The device of claim 1, further comprising auser input device to receive user input to set a value of the receiveddynamically selectable threshold.
 9. The device of claim 1, wherein theinstructions are executable on the processor to: responsive to thethreshold being set to the second threshold value, decline to transmit,to the computer, the location data relating to the geographic locationof the device in response to determining that the device has moved by adistance that does not exceed the second threshold value.
 10. A methodcomprising: generating, by a device comprising a processor, locationdata related to a geographic location of the device; receiving, by thedevice, a dynamically selectable threshold; responsive to the thresholdbeing set to a first threshold value, transmitting, by the device to acomputer over a communication interface between the device and thecomputer, the location data relating to the geographic location of thedevice at a first frequency of transmission, regardless of whether thedevice is stationary or in motion; and responsive to the threshold beingset to a second threshold value different from the first thresholdvalue, transmitting, by the device to the computer over thecommunication interface, the location data relating to the geographiclocation of the device in response to determining that the device hasmoved by a distance that exceeds the second threshold value.
 11. Themethod of claim 10, further comprising: responsive to the thresholdbeing set to the second threshold value, declining to transmit, by thedevice to the computer over the communication interface, the locationdata relating to the geographic location of the device in response todetermining that the device has moved by a distance that does not exceedthe second threshold value.
 12. The method of claim 11, furthercomprising: during a time interval during which the device is nottransmitting the location data to the computer, transmitting, by adevice driver in the computer, location data relating to the device toan application in the computer.
 13. The method of claim 12, wherein thedevice driver transmits the location data to the application to providean indication to the application that the device is functioning.
 14. Themethod of claim 12, further comprising: transmitting, by the devicedriver to the application, the location data relating to the device atthe first frequency even though, during the time interval, the computerdoes not receive the location data relating to the geographic locationof the device from the device over the communication interface.
 15. Themethod of claim 12, wherein the location data relating to the devicetransmitted by the device driver to the application comprises a NationalMarine Electronics Association (NMEA) data stream.
 16. The method ofclaim 10, wherein generating the location data is based on data from aterrestrial-based system or a satellite-based system.
 17. Anon-transitory computer-readable medium storing instructions that, whenexecuted, cause a computer to: during a time interval when the computerdoes not receive location data relating to a geographic location of adevice responsive to the device having not moved by a distance thatexceeds a dynamically settable threshold, transmit, by a device driverin the computer to an application in the computer, location datarelating to the device to provide an indication to the application thatthe device is functioning.
 18. The non-transitory computer-readablemedium of claim 17, wherein the instructions when executed cause thecomputer to receive the location data relating to the geographiclocation of the device responsive to the device having moved by adistance that exceeds the dynamically settable threshold.
 19. Thenon-transitory computer-readable medium of claim 17, wherein theinstructions when executed cause the computer to receive the locationdata relating to the geographic location of the device at a specifiedfrequency in response to the dynamically settable threshold being set toa first value, wherein the device driver transmits the location datarelating to the device at the specified frequency.